package com.duguo.dynamicmvc.factory.processor.model;

import java.util.List;

import javassist.CtClass;
import javassist.bytecode.annotation.AnnotationImpl;

import com.duguo.dynamicmvc.model.annotation.Parameter;

public interface ModelAnnotationReader {

	public String getParameterName(CtClass modelImplCtClass, String fieldName, CtClass fieldType) throws Exception;

	public String getDefaultValue(CtClass modelImplCtClass, String fieldName, CtClass fieldType, boolean isGetter) throws Exception;

	public boolean isParameter(CtClass modelImplCtClass, String fieldName, CtClass fieldType) throws Exception;

	public List getValidators(CtClass modelImplCtClass, String fieldName, CtClass fieldType) throws Exception;

	public Parameter getParameter(CtClass modelImplCtClass, String fieldName, CtClass fieldType) throws Exception;

	public List<Object> getNoneRequiredValidators(List validators);

	public AnnotationImpl getRequiredValidator(List validators);

	public String getValidatorName(AnnotationImpl annotationImpl) throws Exception;


}
